#ifndef _LOGGER_H_
#define _LOGGER_H_

#include <cstdlib>
#include <string>
#include <iostream>
#include <fstream>

#include <BWAPI.h>
#include <BWTA.h>

using namespace std;

namespace LogLevels
{
	enum Level
	{
		Info = 1,
		Debug = 2, 
		Warn = 3, 
		Error = 4, 
		Critical = 5
	};
}

class Logger
{
public:
	Logger();
	Logger(string filename);
	~Logger(void);

	void log(LogLevels::Level lvl, string message);
	void log(LogLevels::Level lvl, const char* format, ...);

	void setLevel(LogLevels::Level _logLevel);
	void setGame(BWAPI::Game* _game);

private:

	LogLevels::Level logLevel;
	BWAPI::Game* game;

	ofstream logFile;
};

#endif